/*
    This file is part of open-wars <http://code.google.com/p/open-wars/>.

    open-wars is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    open-wars is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with open-wars.  If not, see <http://www.gnu.org/licenses/>.
*/

#ifndef common_datatypes_h
#define common_datatypes_h


    #include <stddef.h>
    #include <string>
    #include <iostream>
    #include <stdio.h>

#ifndef WIN32
    #ifndef UINT8
        #define UINT8 unsigned char
    #endif // UINT8

    #ifndef UINT16
        #define UINT16 unsigned short
    #endif // UINT16

    #ifndef UINT32
        #define UINT32 unsigned long
    #endif // UINT32

    #ifndef SINT8
        #define SINT8 signed char
    #endif // SINT8

    #ifndef SINT16
        #define SINT16 signed short
    #endif // SINT16

    #ifndef SINT32
        #define SINT32 signed long
    #endif // SINT32
	typedef bool BOOLEAN;
#else
#include <Windows.h>
#endif
    #ifndef CALLBACK_POINTER
        #define CALLBACK_POINTER(x, y) void (*x)(##y##)
    #endif // CALLBACK_POINTER

    typedef size_t NUMBER;
    typedef std::string STRING;

    typedef struct { NUMBER width; NUMBER height; } RECTANGLE;

    #define TRUE 1
    #define FALSE 0

#endif // common_datatypes_h
